[package]
name = "storage"
version = "0.2.0"
authors = [
    "Andrey Vasnetsov <vasnetsov93@gmail.com>",
    "Qdrant Team <info@qdrant.tech>",
]
license = "Apache-2.0"
edition = "2021"

[features]
tracing = ["dep:tracing", "api/tracing", "collection/tracing", "segment/tracing"]

[dev-dependencies]
tempfile = "3.10.1"
proptest = "1.4.0"
env_logger = "0.11"

[dependencies]
thiserror = "1.0"
rand = "0.8.5"
wal = { git = "https://github.com/qdrant/wal.git", rev = "acaf1b2ebd5de3a871f4d2c48e13fc8788ffa43b" }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
schemars = { workspace = true }
itertools = "0.12"
log = "0.4"
tonic = { workspace = true }
http = "0.2"
parking_lot = { workspace = true }
tar = "0.4.40"
chrono = { version = "~0.4", features = ["serde"] }
validator = { version = "0.16", features = ["derive"] }
semver = { workspace = true }

# Consensus related
atomicwrites = { version = "0.4.3" }
raft = { version = "0.7.0", features = ["prost-codec"], default-features = false }
prost = { workspace = true } # version of prost used by raft
protobuf = "2.28.0" # version of protobuf used by raft
serde_cbor = { workspace = true }

common = { path = "../common/common" }
cancel = { path = "../common/cancel" }
io = { path = "../common/io" }
memory = { path = "../common/memory" }
segment = { path = "../segment" }
collection = { path = "../collection" }
api = { path = "../api" }
futures = { workspace = true }
anyhow = "1.0.80"
uuid = { workspace = true }
url = "2.5.0"
reqwest = { version = "0.11", default-features = false, features = ["stream", "rustls-tls"] }
tempfile = "3.10.1"
async-recursion = "1.0"

tracing = { workspace = true, optional = true }
